package pratica06.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import pratica06.model.Carro;
import pratica06.model.Component;

/**
 *
 * @author a100101
 */
public class CarroDAO implements ICarroDAO {

    public boolean insertCarro(Component carro) {
        return (ConnectBD.executeNonQuery("INSERT INTO TAB_CARRO(DESCRICAO, PRECO) VALUES ('" + carro.getDescricao() + "'," + carro.getPreco() + ");") == 1);
    }

    public boolean deleteCarro(Component carro) {
        return (ConnectBD.executeNonQuery("DELETE FROM TAB_CARRO WHERE DESCRICAO LIKE '%"+carro.getDescricao()+"%' AND PRECO="+carro.getPreco() + ";") == 1);
    }

    public Component findCarro(int id) {
        Component retorno = null;
        ResultSet rs = ConnectBD.executeQuery("SELECT FROM TAB_CARRO WHERE ID_CARRO = " + id);
        try {
            if (rs.first()) {
                retorno = new Carro(rs.getString("DESCRICAO"), rs.getInt("PRECO"));
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro em comando sql!\n" + ex.getMessage(), "Erro na aplicacao", JOptionPane.ERROR_MESSAGE);
        }
        return retorno;
    }

    public boolean updateCarro(int id, Component carro) {
        return (ConnectBD.executeNonQuery("UPDATE TAB_CARRO SET DESCRICAO =\"" + carro.getDescricao() + "\", PRECO = " + carro.getPreco() + " WHERE ID_CARRO = " + id) == 1);
    }

    public ResultSet findAllCarros() {
        return (ConnectBD.executeQuery("SELECT DESCRICAO, PRECO FROM TAB_CARRO;"));
    }

    public Component findCarro(Component carro) {
        Component retorno = null;
        ResultSet consulta = ConnectBD.executeQuery("SELECT DESCRICAO, PRECO FROM TAB_CARRO WHERE TAB_CARRO.DESCRICAO LIKE '%"+carro.getDescricao()+"%';");
        try {
            if (consulta.next()) {
                retorno = new Carro(consulta.getString("DESCRICAO"), consulta.getInt("PRECO"));
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro em comando sql!\n" + ex.getMessage(), "Erro na aplicacao", JOptionPane.ERROR_MESSAGE);
        }
        return retorno;
    }
}
